package com.lingnan.cmsservice.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lingnan.cmsservice.entity.CrmBanner;
import com.lingnan.cmsservice.service.CrmBannerService;
import com.lingnan.common.utils.ResultEntity;
import com.lingnan.servicebase.excetioncontrooller.LingNanException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 首页banner表 前端控制器
 * </p>
 *
 * @author zzd
 * @since 2021-08-30
 */
@RestController
@RequestMapping("/cmsservice/crm-banner")
@Api("banner后台功能")
public class CrmAdminBannerController {

    @Autowired
    private CrmBannerService crmBannerService;


    /**
     *  分页查询banner信息 TODO
     * @param current 当前页数
     * @param limit   每页显示的条数
     * @return
     */
    @GetMapping("findBannerByPage/{current}/{limit}")
    public ResultEntity findBannerByPage(@PathVariable Long current,@PathVariable Long limit){
        return ResultEntity.ok();
    }



    /**
     * 根据ID删除banner信息
     * @param bannerId
     * @return
     */
    @DeleteMapping("deleteBannerById/{bannerId}")
    @ApiOperation("根据ID删除banner信息")
    public ResultEntity deleteBannerById(@PathVariable String bannerId){
        // 根据banner删除banner信息
        try {
            crmBannerService.removeById(bannerId);

            // 返回删除成功信息
            return ResultEntity.ok();
        } catch (Exception e) {
            e.printStackTrace();
            // 返回删除失败信息
            return ResultEntity.error();

        }

    }


    /**
     * 根据bannerId查询banner信息
     * @param bannerId
     * @return
     */
    @GetMapping("findBannerById/{bannerId}")
    @ApiOperation("根据bannerId查询banner信息")
    public ResultEntity findBannerById(@PathVariable String bannerId){
        CrmBanner banner = null;
        try {
            // 执行查询
            banner = crmBannerService.getById(bannerId);
            // 判断查询的信息是否为空
            if(null == banner){
                throw new LingNanException(20001,"查询banner信息失败");
            }
            // 返回查询信息
            return ResultEntity.ok().data("banner",banner);
        } catch (Exception e) {
            e.printStackTrace();

            // 返回查询失败信息
            return ResultEntity.error();
        }
    }

    /**
     * 根据bannerId修改banner信息
     * @param crmBanner
     * @return
     */
    @PostMapping("updateBannerById")
    @ApiOperation("根据ID修改banner信息")
    public ResultEntity updateBannerById(@RequestBody  CrmBanner crmBanner){
        try {
            // 根据banner执行更新操作
            boolean b = crmBannerService.updateById(crmBanner);
            // 判断是否更新成功
            if(!b){
                throw new LingNanException(20001,"修改banner信息失败");
            }
            // 返回成功信息
            return ResultEntity.ok();
        }catch (Exception e){
            // 打印错误信息
            e.printStackTrace();
            // 返回失败信息
            return ResultEntity.error();
        }


    }



}

